package com.zcxx.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 用户模型类，用于表示用户的基本信息。
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "用户模型类，用于表示用户的基本信息")
public class User {
    /**
     * 用户的唯一标识符。
     */
    @TableId(type = IdType.AUTO) // 使用数据库自增主键
    @ApiModelProperty(value = "用户的唯一标识符", example = "1")
    private Long id;

    /**
     * 用户的用户名。
     */
    @ApiModelProperty(value = "用户的用户名", example = "john_doe")
    private String username;

    /**
     * 用户的密码。
     */
    @ApiModelProperty(value = "用户的密码", example = "password123")
    private String password;

    /**
     * 用户的电子邮件地址。
     */
    @ApiModelProperty(value = "用户的电子邮件地址", example = "john.doe@example.com")
    private String email;

    /**
     * 用户的电话号码。
     */
    @ApiModelProperty(value = "用户的电话号码", example = "1234567890")
    private String phone;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "用户创建时间", example = "2023-10-01 12:34:56")
    private Date createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "用户更新时间", example = "2023-10-01 12:34:56")
    private Date updateTime;

    // Getters and Setters
    // toString() 方法
}
